package 类与对象.继承;
/*
    继承：
        1.子类必须调用父类的构造器，完成父类的初始化
        2.当创建子类对象时，不管使用子类的哪个构造器，默认情况下总会去调用父类的无参构造器
            如果父类没有提供无参构造器，则必须在子类的构造器中用super去指定使用父类的那个构造器
            完成对父类的初始化工作，否则，编译不会通过

        3.如果希望指定去调用父类的某个构造器，则显示的调用一下：super(参数列表)
        4.super在使用的时候，必须放在构造器第一行(super只能在构造器中使用)
        5.super()和this()都只能放在构造器第一行，因此这两个方法不能共存在一个构造器
 */
public class Graduate {
    public int n1 = 100;
    protected int n2 = 200;
    int n3 = 300;
    private int n4 = 400;

    public int getN4() {
        return n4;
    }

    public void setN4(int n4) {
        this.n4 = n4;
    }

//    public Graduate() {
//        System.out.println("父类无参构造器");
//    }

    public Graduate(String name){
        System.out.println("有参构造");
    }

    public void test100(){
        System.out.println("test100");
    }
    void test200(){
        System.out.println("test200");
    }
    protected void test300(){
        System.out.println("test300");
    }
    private void test400(){
        System.out.println("test400");
    }
}
